#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <sys/types.h>
int main()
{
	pid_t id = fork();
	if(id < 0)
	{
		perror("fork failed");
		exit(1);
	}
	if(id == 0)
	{
		//child
		printf("i am a child process,replacing myself with /bin/ls\n");
		execl("/bin/ls","ls",NULL);//使用exec替换为ls程序
		//如果execl执行成功，下行将不会被执行。
		perror("execl failed");
		exit(1);
	}
	else 
	{
		//father
		wait(NULL);//等待子进程结束
		printf("child process finished\n");
	}
	return 0;
}
